#include "esp_wifi.h"
#include "esp_event.h"      // ESP32事件处理库
#include "esp_log.h"         // ESP32日志库
#include "nvs_flash.h"       // 非易失性存储库
#include "esp_mac.h"         // ESP32 MAC地址库
#include <string.h>           // 字符串处理库
#include "esp_http_server.h" // HTTP服务器库
#include "lwip/err.h"        // LwIP错误处理
#include "lwip/sys.h"        // LwIP系统库
#include "lwip/udp.h"        // UDP协议支持
#include "lwip/inet.h"       // 网络地址转换
#include "esp_netif.h"       // 网络接口抽象层
// 最小值宏定义
#define MIN(a, b) ((a) < (b) ? (a) : (b))

// DNS服务端口号
#define DNS_PORT 53
// DNS消息头部大小
#define DNS_HEADER_SIZE 12

// WiFi接入点名称
#define WIFI_SSID "zero_esp32"
// WiFi接入点密码（空字符串表示开放网络）
#define WIFI_PASS ""
// ESP32设备主机名
#define ESP32_HOSTNAME "esp32-nn"

// 事件组用于Wi-Fi连接状态管理
extern EventGroupHandle_t wifi_event_group;
// 定义Wi-Fi连接成功事件位
extern const int WIFI_CONNECTED_BIT;

void wifi_init(void);
void stop_config_server(void); // 停止配置服务器